{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 计算图内的桥, 可参考关节点\n",
    "import igraph as ig\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 构建包含少量桥的图\n",
    "g = ig.Graph(14, [(0, 1), (1, 2), (2, 3), (0, 3), (0, 2), (1, 3), (3, 4),\n",
    "        (4, 5), (5, 6), (6, 4), (6, 7), (7, 8), (7, 9), (9, 10), (10 ,11),\n",
    "        (11 ,7), (7, 10), (8, 9), (8, 10), (5, 12), (12, 13)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 找到链接图内不同部分的桥\n",
    "bridges = g.bridges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 设定颜色\n",
    "g.es[\"color\"] = \"gray\"\n",
    "g.es[bridges][\"color\"] = \"red\"\n",
    "g.es[\"width\"] = 0.8\n",
    "g.es[bridges][\"width\"] = 1.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "fig, ax = plt.subplots()\n",
    "ig.plot(\n",
    "    g,\n",
    "    target=ax,\n",
    "    vertex_size=0.3,\n",
    "    vertex_color=\"lightblue\",\n",
    "    vertex_label=range(g.vcount())\n",
    ")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.10.6 ('py310')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "49ec5068d4d6d3736c39d3918a16f1ca551a23384109b69898c01c2015d1370c"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
